Three control flow obfuscation methods for Java software

نویسندگان

  • Ting-Wei Hou
  • Hsiang-Yang Chen
  • Ming-Hsiu Tsai
چکیده

Three novel control computation (control flow) obfuscation methods are described for protecting Java class files. They are basic block fission obfuscation, intersecting loop obfuscation and replacing goto obfuscation. The basic block fission obfuscation splits some chosen basic block(s) into more basic blocks, in which opaque predicates and goto instructions are inserted to make decompiling unsuccessful. The intersecting loop obfuscation intersects two loops and then adds this pattern into programs. The intersecting loop structure should not appear in a Java source program or a class file. The replacing goto obfuscation replaces goto instructions with conditional branch instructions. The newmethods were tested against 16 decompilers. The study also implemented multi-level exit obfuscation and single-level exit obfuscation for comparison. Both the intersecting loop obfuscation and the replacing goto obfuscation successfully defeated all the decompilers.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Obfuscating Java: The Most Pain for the Least Gain

Software obfuscators are used to transform code so that it becomes more difficult to understand and harder to reverse engineer. Obfuscation of Java programs is particularly important since Java’s binary form, Java bytecode, is relatively high-level and susceptible to high-quality decompilation. The objective of our work is to develop and study obfuscation techniques that produce obfuscated byte...

متن کامل

Self-Protecting Mobile Agents Obfuscation Techniques Evaluation Report

This document presents an analysis of various program obfuscation techniques performed as part of the Self-Protecting Mobile Agents (SPMA) project. We have developed the Java Binary Enhancement Tool (JBET) to explore the real-world tradeoffs in translating and obfuscating Java bytecodes. We consider methods for obfuscating long-term data values, temporary data values, control flow, memory manag...

متن کامل

Java Bytecode Obfuscation

Programs written for machine execution will always be susceptible to information theft. This information can include trademarked algorithms, data embedded in the program, or even data the program accesses. As technology advances computer scientists are building more and more powerful tools for reverse-engineering such as decompilers. The Java programming language is particularly open to reverse...

متن کامل

Java Control Flow Obfuscation

The language Java was designed to be compiled into a platform independent bytecode format. Much of the information contained in the source code remains in the bytecode, which means that decompilation is easier than with traditional native codes. As a result, software developers are taking seriously the threat of competitors using reverse-engineering to extract proprietary algorithms from compil...

متن کامل

On the Effectiveness of Source Code Transformations for Binary Obfuscation

Obfuscation is gaining momentum as a protection mechanism for the intellectual property contained within or encapsulated by software. Usually, one of the following three directions is followed: source code obfuscation is achieved through source code transformations, Java bytecode obfuscation through transformations on the bytecode, and binary obfuscation through binary rewriting. In this paper,...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • IEE Proceedings - Software

دوره 153  شماره 

صفحات  -

تاریخ انتشار 2006